
$(document).ready(function(){   
    
//    $(".campo_numerico").blur(function(){
//        var RegExPattern = /^[0-9]{1,5}(\.[0-9]{0,2})?$/;
//
//        if ((this.value.match(RegExPattern)) && (this.value!='')) {
//   
//        } else {
//            this.value = "1";
//        }
//    });

       var proveedores = $.get( "/proveedores.json", function( data ) {
                    return data;
          });
       var ordenes = $.get( "/ordenes_compra.json", function( data ) {
                    return data;
          });
    
    $('.campo_numerico').validCampoFranz('.0123456789');
    
    $("#agregard").click(function(e){
        //obtiene el num elemento para generar el id
          no_elem = $("#tabla_detalle > tbody > tr").length + 1
          // Se inserta en la tabla
          $('#tabla_detalle tr:last').after('<tr id=detalle_temp-'+ no_elem +'>\n\
                   <td>\n\<select class="form-control input-sm" id="orden_compra_detalles_orden_compra_attributes_'+no_elem +'_item_id" name="orden_compra[detalles_orden_compra_attributes]['+no_elem+'][item_id]" onchange ="cambiarUM(this);" /></td>\n\
                   <td id="um-'+ no_elem +'"><input id="unidad_medida" name="unidad_medida" readonly="readonly" type="text" value=""></td>\n\
                   <td>\n\
                       <input class="campo_numerico" id="orden_compra_detalles_orden_compra_attributes_'+no_elem +'_Cantidad" name="orden_compra[detalles_orden_compra_attributes]['+no_elem+'][Cantidad]" type="text" value="1" onkeypress="validarDecimal(this.id); return event.keyCode!=13">\n\
                   </td>\n\\n\
                   <td>\n\
                       <input class="campo_numerico" id="orden_compra_detalles_orden_compra_attributes_'+no_elem +'_Precio" name="orden_compra[detalles_orden_compra_attributes]['+no_elem+'][Precio]" type="text" value="1" onkeypress="validarDecimal(this.id); return event.keyCode!=13">\n\
                   </td><td><a class="btn btn-xs btn-danger" data-confirm="¿Seguro que desea eliminar el detalle de la orden de compra?" data-method="delete" data-original-title="Eliminar" data-placement="top" data-remote="true" href="/det_orden_compra_temp/'+no_elem+'" rel="nofollow"><i class="fa fa-trash-o"></i></a></td></tr>\n\
           ');  
        //Se obtiene el id del combo , ya que esta vacio
          var combo_items = $('#orden_compra_detalles_orden_compra_attributes_'+no_elem +'_item_id '); 
          combo_items.append('<option value="">-- Seleccione el item --</option>');
          //se obtienen todos los items que hay en el catalogo de items
          $.get( "/items.json", function( data ) {
              // items que ya han sido seleccionados
//                items_seleccionados = $("#tabla_detalle > tbody select");
//                var items = new Array();
//                //Se obtienen solo los ids de esos items y se agregan en un array
//                $.each(items_seleccionados,function(key,val){ 
//                    opcion_seleccionada = $("#"+val.id).val();
//                    items.push(opcion_seleccionada);
//
//                })
              //se recorre el arreglo del json donde vienen todos los items
              $.each(data, function(key, val){
                  //se busca si esta en la lista de los items seleccionados
//                var result = $.grep(items, function(e){ return e == val.id; });
//                if(result.length == 0){ //si no , entonces lo agrega a la nueva lista
                    combo_items.append('<option value="' + val.id + '">' + val.Nombre + ' ' + val.DescripcionCompras + '</option>');
                    primer_elem = $('select#orden_compra_detalles_orden_compra_attributes_'+no_elem +'_item_id option:first-child').val();
                    if(primer_elem == val.id){
                       cambiar_unidad_medida(val,no_elem);   
                            
                    }
//                } 
              })
          });
    });
    
    
    $('#tabla_detalle > tbody select').on('change', function() {

          id_elem = this.id;
          no_elem = id_elem.substring(46,47);
          var idItem = this.value;
          
          $.get( "/items/"+idItem+".json", function( data ) {
              cambiar_unidad_medida(data,no_elem);
          });
          
    });
    
    
    //Verificar que no se ingresen campos vacios
    $('#guardar_orden').click(function(e) {
        var isValid = true;
        $('#tabla_detalle input[type="text"]').each(function() {
            if ($.trim($(this).val()) == '') {
                isValid = false;
                $(this).css({
                    "border": "1px solid red",
                    "background": "#FFCECE"
                });
            }
            else {
                $(this).css({
                    "border": "",
                    "background": ""
                });
            }
        });
        if (isValid == false)
            e.preventDefault();
//        else
//            alert('Thank you for submitting');

    });
    
    // RT
    
    //$("input[type=checkbox]").click(function(e){
//    $("#tab-proveedor").click(function(e){
//      $("#tbl_rt_oc_proveedores > tbody > tr").remove();
//      ordenes_seleccionadas = $('#tab1 input:checked');
//
//      if(ordenes_seleccionadas.length === 0){
//        no_elem = 1;
//        elementos_insertar ='<tr>\n\
//           <td><select id="receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_orden_compra_id" name="receiving_ticket[rt_oc_attributes]['+no_elem+'][orden_compra_id]" ></td>\n\\n\
//           <td>\n\<select class="form-control input-sm" id="receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_proveedor_id" name="receiving_ticket[rt_oc_attributes]['+no_elem+'][proveedor_id]"/></td>\n\
//           <td>\n\
//               <input id="receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_factura" name="receiving_ticket[rt_oc_attributes]['+no_elem+'][factura]" type="text">\n\
//           </td>';
//        $('#tbl_rt_oc_proveedores tbody').append(elementos_insertar);
//        combo = $('#receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_orden_compra_id'); 
//        $.get( "/ordenes_compra.json", function( orden ) {
//              //se recorre el arreglo del json donde vienen todos los items
//              $.each(orden, function(key, val){
//                   combo.append('<option value="' + val.id + '">' + val.id +'</option>');
//                   
//              });
//        });
//                      //se recorre el arreglo del json donde vienen todos los items
//        combo_p = $('#receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_proveedor_id');
//        $.each(proveedores, function(key, val){
//             combo_p.append('<option value="' + val.id + '">' + val.NombreRazon +'</option>');
//
//        });
//      }else{
//        ordenes_seleccionadas.each(function() {
//
//          if(this.id === "ordenes_ids_"){
//             $.get( "/ordenes_compra/"+this.value+".json", function( data ) {
//                  //obtiene el num elemento para generar el id
//                  no_elem = $("#tbl_rt_oc_proveedores > tbody > tr").length + 1
//                 elementos_insertar ='<tr>\n\
//                           <td><input id="receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_orden_compra_id" name="receiving_ticket[rt_oc_attributes]['+no_elem+'][orden_compra_id]" readonly="readonly" type="text" value="'+data.id+'" text="hola"></td>\n\\n\
//                           <td>\n\<select class="form-control input-sm" id="receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_proveedor_id" name="receiving_ticket[rt_oc_attributes]['+no_elem+'][proveedor_id]" value="'+data.proveedor_id+'" /></td>\n\
//                           <td>\n\
//                               <input id="receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_factura" name="receiving_ticket[rt_oc_attributes]['+no_elem+'][factura]" type="text">\n\
//                           </td>';
//
//                  // Se inserta en la tabla
//                  tabla = $('#tbl_rt_oc_proveedores tbody tr:last');
//                  if(tabla.length === 0)
//                    $('#tbl_rt_oc_proveedores tbody').append(elementos_insertar); 
//                  else
//                      $('#tbl_rt_oc_proveedores tr:last').after(elementos_insertar);
//
//                  combo = $('#receiving_ticket_rt_oc_proveedores_attributes_'+no_elem +'_proveedor_id'); 
//                  combo.append('<option value="'+data.proveedor_id+'">'+data.proveedor+'</option>');
//                  $(combo).attr("disabled", true);
//  //                  $.each(proveedores, function(key, val){
//  //                    combo_items.append('<option value="' + val.id + '">' + val.Nombre + ' ' + val.DescripcionCompras + '</option>');
//  //                    primer_elem = $('select#orden_compra_detalles_orden_compra_attributes_'+no_elem +'_item_id option:first-child').val();
//  //                  })
//            });
//
//          };
//        });
//      };
//    });
    
    // DETALLE RT
    $("#rt_detalle_incidencia").hide();
    $("#tiene_incidencia").click(function(){
        if($("#rt_detalle_incidencia").css('display') === 'none') {
            $("#rt_detalle_incidencia").val("");
        }
        $("#rt_detalle_incidencia").toggle();
    });
    
    // cambiar libras al ingresar kilos
    $("#rt_detalle_kilos").on('keydown', function(e) { 
        var keyCode = e.keyCode || e.which; 

        if (keyCode == 9) { 
            kilos = this.value;
            libras = kilos / .4536;
            tot_piezas = $("#rt_detalle_total_piezas").val();
            $("#rt_detalle_libras").val(libras);
            if (tot_piezas){
                tot_kilos = $("#rt_detalle_total_kilos").val(tot_piezas * kilos);
                tot_libras = $("#rt_detalle_total_libras").val(tot_piezas * libras);
            }

            //$("#rt_detalle_total_kilos").val(tot_kilos.toFixed(2));

        } 
      });
      
      // cambiar kilos al ingresar libras
      $("#rt_detalle_libras").on('keydown', function(e) { 
        var keyCode = e.keyCode || e.which; 

        if (keyCode == 9) { 
            libras = this.value;
            kilos  = libras * .4536;

            $("#rt_detalle_kilos").val(kilos);
            tot_piezas = $("#rt_detalle_total_piezas").val();
            if (tot_piezas){
                tot_kilos = $("#rt_detalle_total_kilos").val(tot_piezas * kilos);
                tot_libras = $("#rt_detalle_total_libras").val(tot_piezas * libras);
            }

        } 
      }); 
      
      $("#rt_detalle_total_piezas").on('keydown', function(e) { 
        var keyCode = e.keyCode || e.which; 

        if (keyCode == 9) { 
            libras = $("#rt_detalle_libras").val();
            kilos  = $("#rt_detalle_kilos").val();
            tot_piezas = $("#rt_detalle_total_piezas").val();
            tot_kilos = $("#rt_detalle_total_kilos").val(tot_piezas * kilos);
            tot_libras = $("#rt_detalle_total_libras").val(tot_piezas * libras);
        } 
      }); 
      
     $("#rt_detalle_cantidad").on('keydown', function(e) { 
        var keyCode = e.keyCode || e.which; 

        if (keyCode == 9) { 
            cant_tarima = $("#rt_detalle_cantidad").val();
            tot_tarima  = $("#rt_detalle_total_cajas").val();
            tot_piezas = $("#rt_detalle_total_piezas").val(cant_tarima * tot_tarima);
        } 
      }); 
      
      $("#rt_detalle_total_cajas").on('keydown', function(e) { 
        var keyCode = e.keyCode || e.which; 

        if (keyCode == 9) { 
            cant_tarima = $("#rt_detalle_cantidad").val();
            tot_tarima  = $("#rt_detalle_total_cajas").val();
            tot_piezas = $("#rt_detalle_total_piezas").val(cant_tarima * tot_tarima);
        } 
      });
    
    $("#tabla_items > tbody > tr").click(function(e){
        det_oc_id = this.id;
        llenar_campos(det_oc_id);
       
    });
    
    $("#tabla_detalle > tbody > tr").click(function(e){
        detalle_id = this.id;
        llenar_campos_detalle(detalle_id);
       
    });
    
    // Agrega el buscador a los combos
    $('#rt_detalle_item_id').attr('data-live-search', true);
    $('#rt_detalle_item_id').selectpicker('search');
    $('#rt_detalle_proveedor_id').attr('data-live-search', true);
    $('#rt_detalle_proveedor_id').selectpicker('search');
    $('#rt_detalle_unidad_medida_id').attr('data-live-search', true);
    $('#rt_detalle_unidad_medida_id').selectpicker('search');
    
    $('#rt_detalle_item_id').on('change', function() {

        var idItem = this.value;

        $.get( "/items/"+idItem+".json", function( data ) {
            $("#rt_detalle_descripcion").val(data.DescripcionCompras);
            $("#rt_detalle_proveedor_id").val(data.Proveedor_id);
            $("#rt_detalle_proveedor_id").selectpicker('refresh');
            $.get( "/unidades_medida/"+data.UnidadMedida_id+".json", function( um ) {
                $("#rt_detalle_unidad_medida_id").val(um.id);
                $("#rt_detalle_unidad_medida_id").selectpicker('refresh');
            });
        });
         
          
    });

    $("#new_rt_detalle").on("ajax:success", function(e, data, status, xhr) {
        vaciar_campos_detalle();
//        return $("#new_rt_detalle").append(xhr.responseText);
  }).on("ajax:error", function(e, xhr, status, error) {
      alert(error);
    return $("#new_rt_detalle").append("<p>ERROR EN JAVASCRIPT</p>");
  });

    
    
});

function llenar_campos(det_oc_id){

    $.get( "/det_ordenes_compra/"+det_oc_id+".json", function( det_oc ) {
        $.get( "/items/"+det_oc.item_id+".json", function( data ) {
       // $.each(data, function(key, val){
            $("#rt_detalle_det_orden_compra_id").val(det_oc.id);
            $("#rt_detalle_item_id").val(data.id);
            $('#rt_detalle_item_id').selectpicker('search');
            $("#item").val(data.Nombre);
            $("#rt_detalle_descripcion").val(data.DescripcionCompras);
            $("#rt_detalle_proveedor_id").val(data.Proveedor_id);
            $("#rt_detalle_proveedor_id").selectpicker('refresh');
            console.log(data.id);
            console.log(data);
            $("#rt_detalle_fraccion_arancelaria").val(data.FraccionArancelaria);

//            $.get( "/proveedores/"+data.Proveedor_id+".json", function( proveedor ) {
//                $("#proveedor").val(proveedor.NombreRazon);
//            });
            $.get( "/unidades_medida/"+data.UnidadMedida_id+".json", function( um ) {
                $("#rt_detalle_unidad_medida_id").val(um.id);
                $('#rt_detalle_unidad_medida_id').selectpicker('search');

            });
            bloquear_campos(true);

        });
    });    
}

function bloquear_campos(bloquear){
   $("#rt_detalle_item_id").attr("readonly", bloquear);
   $("#rt_detalle_descripcion").attr("readonly", bloquear);
   $("#rt_detalle_proveedor_id").attr("readonly", bloquear);
   $("#rt_detalle_unidad_medida_id").attr("readonly", bloquear); 
   $("#rt_detalle_fraccion_arancelaria").attr("readonly", bloquear);
};

function llenar_campos_detalle(detalle_oc_id){
    $.get( "/receiving_tickets/detalle/"+detalle_oc_id+".json", function( detalle ) {
        $("#rt_detalle_det_orden_compra_id").val(detalle.id);
        $("#rt_detalle_item_id").val(detalle.item_id);
        $('#rt_detalle_item_id').selectpicker('search');
        $("#item").val(detalle.item_nombre);
        $("#rt_detalle_proveedor_id").val(detalle.Proveedor_id);
        $("#rt_detalle_proveedor_id").selectpicker('refresh');
        $("#proveedor").val(detalle.nombre_proveedor);
        $("#rt_detalle_factura").val(detalle.factura);
        $("#rt_detalle_partida").val(detalle.partida);
        $("#rt_detalle_hoja").val(detalle.hoja);
        $("#rt_detalle_descripcion").val(detalle.descripcion);
        $("#rt_detalle_fraccion_arancelaria").val(detalle.fraccion_a);
        $("#rt_detalle_incidencia").val(detalle.incidencia);
        $("#rt_detalle_origen_id").val(detalle.origen_id);
        $("#rt_detalle_production").val(detalle.production);
        $("#rt_detalle_expiration").val(detalle.expiration);
        $("#rt_detalle_lote").val(detalle.lote);
        $("#rt_detalle_cantidad").val(detalle.cantidad);
        $("#rt_detalle_unidad_medida_id").val(detalle.unidad_medida_id); 
        $('#rt_detalle_unidad_medida_id').selectpicker('search');

        $("#rt_detalle_cantidad_por_caja").val(detalle.cantidad_por_caja);
        $("#rt_detalle_unidad_medida_llegada_id").val(detalle.unidad_medida_llegada_id);      
        $("#rt_detalle_total_cajas").val(detalle.total_cajas); 
        $("#rt_detalle_total_piezas").val(detalle.total_piezas);
        $("#rt_detalle_nom_etiquetado").val(detalle.nom_etiquetado);     
        $("#rt_detalle_total_etiquetas").val(detalle.total_etiquetas); 
        $("#rt_detalle_numero_pallets").val(detalle.numero_pallets);
        $("#rt_detalle_nom_localizacion").val(detalle.localizacion);
    });
    
};

function vaciar_campos_detalle(){

        $("#rt_detalle_item_id").val("");
        $("#item").val("");
        $("#rt_detalle_proveedor_id").val("");
        $("#rt_detalle_proveedor_id").selectpicker('refresh');

        $("#rt_detalle_factura").val("");
        $("#rt_detalle_partida").val("");
        $("#rt_detalle_hoja").val("");
        $("#rt_detalle_descripcion").val("");
        $("#rt_detalle_fraccion_arancelaria").val("");
        $("#rt_detalle_incidencia").val("");
        $("#rt_detalle_origen_id").val("");
        $("#rt_detalle_production").val("");
        $("#rt_detalle_expiration").val("");
        $("#rt_detalle_lote").val("");
        $("#rt_detalle_cantidad").val("");
        $("#rt_detalle_unidad_medida_id").val("");        
        $("#rt_detalle_cantidad_por_caja").val("");
        $("#rt_detalle_unidad_medida_llegada_id").val("");      
        $("#rt_detalle_total_cajas").val(""); 
        $("#rt_detalle_total_piezas").val("");
        $("#rt_detalle_nom_etiquetado").val("");     
        $("#rt_detalle_total_etiquetas").val(""); 
        $("#rt_detalle_numero_pallets").val("");
        $("#rt_detalle_nom_localizacion").val("");  
        bloquear_campos(false);
    
};



function cambiar_unidad_medida(item,no_elem){
     
   unidad_medida_id = item.UnidadMedida_id;
   if(unidad_medida_id != null){
        $.get( "/unidades_medida/"+unidad_medida_id+".json", function( data ) {
                     $("#um-"+no_elem+" input#unidad_medida").val(data.Descripcion);
         }); 
   }else{
       $("#um-"+no_elem+" input#unidad_medida").val("Item sin unidad de medida seleccionada");
   }
};
